package com.ruoyi.system.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 发票信息实体类 fapiao
 *
 * @author ruoyi
 * @date 2025-06-25
 */
public class FaPiao extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 发票主键 */
    private Long fapiaoId;

    /** 订单ID */
    @Excel(name = "订单ID")
    private Integer orderId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderSn;

    /** 会员ID */
    @Excel(name = "会员ID")
    private Integer memberId;

    /** 商户ID */
    @Excel(name = "商户ID")
    private String tenantId;

    /** 开票时间 */
    @Excel(name = "开票时间")
    private Date createTime;

    /** 第三方支付订单号 */
    @Excel(name = "第三方支付订单号")
    private String orderOut;

    /** 总金额 */
    @Excel(name = "总金额")
    private BigDecimal TotalAmount;

    /** 开票状态（0未提交 1正在开票中 2已开票） */
    @Excel(name = "开票状态")
    private Integer kpStatus;

    /** 发票流水号 */
    @Excel(name = "发票流水号")
    private String szFpqqlsh;

    /** 开票地址 */
    @Excel(name = "开票地址")
    private String kpdz;

    /** 发票号码 */
    @Excel(name = "发票号码")
    private String fphm;

    /** 发票PDF地址 */
    @Excel(name = "发票PDF地址")
    private String pdfUrl;

    /** 备注 */
    @Excel(name = "备注")
    private String bz;

    // ------------------------- getter 和 setter 方法 -------------------------

    public Long getFapiaoId() {
        return fapiaoId;
    }

    public void setFapiaoId(Long fapiaoId) {
        this.fapiaoId = fapiaoId;
    }

    public Integer getOrderId() {
        return orderId;
    }

    public void setOrderId(Integer orderId) {
        this.orderId = orderId;
    }

    public String getOrderSn() {
        return orderSn;
    }

    public void setOrderSn(String orderSn) {
        this.orderSn = orderSn;
    }

    public Integer getMemberId() {
        return memberId;
    }

    public void setMemberId(Integer memberId) {
        this.memberId = memberId;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getOrderOut() {
        return orderOut;
    }

    public void setOrderOut(String orderOut) {
        this.orderOut = orderOut;
    }

    public BigDecimal getTotalAmount() {
        return TotalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.TotalAmount = totalAmount;
    }

    public Integer getKpStatus() {
        return kpStatus;
    }

    public void setKpStatus(Integer kpStatus) {
        this.kpStatus = kpStatus;
    }

    public String getSzFpqqlsh() {
        return szFpqqlsh;
    }

    public void setSzFpqqlsh(String szFpqqlsh) {
        this.szFpqqlsh = szFpqqlsh;
    }

    public String getKpdz() {
        return kpdz;
    }

    public void setKpdz(String kpdz) {
        this.kpdz = kpdz;
    }

    public String getFphm() {
        return fphm;
    }

    public void setFphm(String fphm) {
        this.fphm = fphm;
    }

    public String getPdfUrl() {
        return pdfUrl;
    }

    public void setPdfUrl(String pdfUrl) {
        this.pdfUrl = pdfUrl;
    }

    public String getBz() {
        return bz;
    }

    public void setBz(String bz) {
        this.bz = bz;
    }

    // ------------------------- 重写 toString 方法 -------------------------

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("fapiaoId", getFapiaoId())
                .append("orderId", getOrderId())
                .append("orderSn", getOrderSn())
                .append("memberId", getMemberId())
                .append("tenantId", getTenantId())
                .append("createTime", getCreateTime())
                .append("orderOut", getOrderOut())
                .append("TotalAmount", getTotalAmount())
                .append("kpStatus", getKpStatus())
                .append("szFpqqlsh", getSzFpqqlsh())
                .append("kpdz", getKpdz())
                .append("fphm", getFphm())
                .append("pdfUrl", getPdfUrl())
                .append("bz", getBz())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
